/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Visual;

import Logica.Empresa;
import java.util.Calendar;
import Logica.*;
import Persistencia.exceptions.NonexistentEntityException;
import Persistencia.exceptions.PreexistingEntityException;
import java.sql.Time;
import java.util.List;
import java.util.Set;

/**
 *
 * @author Pablo
 */
public class ControladoraVisual {

    Empresa miEmpresa = new Empresa();

    public Cliente altaCliente(int nroCliente, String nombre, String apellido, Calendar fechaNacimiento, double nroDoc,
            String domicilio, long telefono, List<Vehiculo> vehiculos,Localidad loc) throws PreexistingEntityException, Exception {
        return miEmpresa.altaCliente(nroCliente, nombre, apellido, fechaNacimiento, nroDoc, domicilio, telefono, vehiculos,loc);
    }

    public Localidad altaLocalidad(int codigo, String nombre) throws PreexistingEntityException, Exception {
        return miEmpresa.altaLocalidad(codigo, nombre);
    }

    public void altaEmpleado(int nroLegajo, CategoriaEmp unaCategoriaEmp, String nombre, String apellido, Calendar fechaNacimiento,
            double nroDoc, String domicilio, long telefono, Set<Especialidad> especialidades) throws PreexistingEntityException, Exception {

        miEmpresa.altaEmpleado(nroLegajo, unaCategoriaEmp, nombre, apellido, fechaNacimiento, nroDoc, domicilio, telefono,
                especialidades);
    }

    public CategoriaEmp altaCategoriaEmp(String nombre, String descripcion, Empleado unEmpleado) throws PreexistingEntityException, Exception {
        return miEmpresa.altaCategoriaEmp(nombre, descripcion, unEmpleado);
    }

    public Garantia altaGarantia(int nroGarantia, Calendar hastaFecha, int hastaKm, Vehiculo unVehiculo) throws PreexistingEntityException, Exception {
        return miEmpresa.altaGarantia(nroGarantia,hastaFecha, hastaKm, unVehiculo);
    }

    public Vehiculo altaVehiculo(String dominio, String nroChasis, String nroMotor, Integer anio, Integer kilometrosRec, String equipamiento,
            Calendar fechaCompra, Modelo unModelo, Garantia unaGarantia, Turno unTurno, Cliente unCliente) throws PreexistingEntityException, Exception {

        return miEmpresa.altaVehiculo(dominio, nroChasis, nroMotor, anio, kilometrosRec, equipamiento, fechaCompra,
                unModelo, unaGarantia, unTurno, unCliente);
    }

    public Marca altaMarca(String nombre) throws PreexistingEntityException, Exception {
        return miEmpresa.altaMarca(nombre);
    }

    public Modelo altaModelo(String nombre, Marca unaMarca, Segmento unSegmento) throws PreexistingEntityException, Exception {
        return miEmpresa.altaModelo(nombre, unaMarca, unSegmento);
    }

    public Segmento altaSegmento(String nombre, Modelo unModelo) throws PreexistingEntityException, Exception {
        return miEmpresa.altaSegmento(nombre, unModelo);
    }

    public Especialidad altaEspecialidad(String nombre, Empleado unEmpleado) throws PreexistingEntityException, Exception {
        return miEmpresa.altaEspecialidad(nombre, unEmpleado);
    }

    public void altaTaller(int nroTaller, String direccion, String nombre, String telefono,
            Localidad unaLocalidad, List<Localidad> zonasCobertura) throws PreexistingEntityException, Exception {
        miEmpresa.altaTaller(nroTaller, direccion, nombre, telefono, unaLocalidad, zonasCobertura);
    }

    public void altaAnomalia(String nombre, Severidad unaSeveridad) throws PreexistingEntityException, Exception {
        miEmpresa.altaAnomalia(nombre, unaSeveridad);
    }

    public Severidad altaSeveridad(int nivel) throws PreexistingEntityException, Exception {
        return miEmpresa.altaSeveridad(nivel);
    }

    public void altaImportancia(String nivel, PedidoRepuesto unPedido) throws PreexistingEntityException, Exception {
        miEmpresa.altaImportancia(nivel, unPedido);
    }

    public void altaProveedor(String razonSocial, String domicilio, long telefono, Taller unTaller) throws PreexistingEntityException, Exception {
        miEmpresa.altaProveedor(razonSocial, domicilio, telefono, unTaller);
    }

    public void altaRepuesto(int codigo, String descripcion, float precio, boolean garantia, int impuesto, Proveedor unProveedor,
            Taller unTaller, Vehiculo unVehiculo, PedidoRepuesto unPedido) throws PreexistingEntityException, Exception {
        miEmpresa.altaRepuesto(codigo, descripcion, precio, garantia, impuesto, unProveedor,
                unTaller, unVehiculo, unPedido);
    }

    public void altaOperacion(Time duracion, int codigo, float costo, float impuesto, Empleado unEmpleado,
            TipoOperacion unTipoOperacion, Reparacion unaReparacion) throws PreexistingEntityException, Exception {
        miEmpresa.altaOperacion(duracion, codigo, costo, impuesto, unEmpleado, unTipoOperacion, unaReparacion);
    }

    public TipoOperacion altaTipoOperacion(String nombre) throws PreexistingEntityException, Exception {
        return miEmpresa.altaTipoOperacion(nombre);

    }

    public List<Marca> dameMarcas() {
        return miEmpresa.dameMarcas();
    }

    public List<Segmento> dameSegmentos() {
        return miEmpresa.dameSegmentos();
    }

    public List<Modelo> dameModelos() {
        return miEmpresa.dameModelos();
    }

    public Marca dameMarca(String nombre) {
        return miEmpresa.dameMarca(nombre);
    }

    public void editarMarca(Marca unaMarca) throws NonexistentEntityException, Exception {
        miEmpresa.editarMarca(unaMarca);
    }

    public void editarModelo(Modelo unModelo) throws NonexistentEntityException, Exception {
        miEmpresa.editarModelo(unModelo);
    }

    public List<Localidad> dameLocalidades() {
        return miEmpresa.dameLocalidades();
    }

    public List<Vehiculo> dameVehiculos() {
        return miEmpresa.dameVehiculos();
    }

    public List<CategoriaEmp> dameCategoriasEmp() {
        return miEmpresa.dameCategoriasEmp();
    }

    public List<Especialidad> dameEspecialidades() {
        return miEmpresa.dameEspecialidades();
    }

    public List<Taller> dameTalleres() {
        return miEmpresa.demeTalleres();
    }

    public Empleado dameEmpleado(double dni) {
        return miEmpresa.dameEmpleado(dni);
    }

    public void editarEmpleado(Empleado unEmpleado) throws NonexistentEntityException, Exception {
        miEmpresa.editarEmpleado(unEmpleado);
    }

    public void editarTaller(Taller unTaller) throws NonexistentEntityException, Exception {
        miEmpresa.editarTaller(unTaller);
    }

    public List<Cliente> dameClientes() {
        return miEmpresa.dameClientes();
    }

    public List<Severidad> dameSeveridades() {
        return miEmpresa.dameSeveridades();
    }

    public List<TipoOperacion> dameTiposOperacion() {
        return miEmpresa.dameTiposOperacion();
    }

    public List<Importancia> dameImportancias() {
        return miEmpresa.dameImportancias();
    }

    public List<Repuesto> dameRepuestos() {
        return miEmpresa.dameRepuestos();
    }

    public void altaOperacion(Time duracion, int codigo, float costo, float impuesto,
            TipoOperacion unTipoOperacion) throws PreexistingEntityException, Exception {
        miEmpresa.altaOperacion(duracion, codigo, costo, impuesto, unTipoOperacion);
    }

    public void editarVehiculo(Vehiculo unVehiculo) throws NonexistentEntityException, Exception {
        miEmpresa.editarVehiculo(unVehiculo);
    }

    public void altaTurno(int nroTurno, Calendar fechaTurno, Time horaTurno, Time duracion, Time tiempoEstimado, Cliente unCliente,
            Empleado unEmpleado, Diagnostico unDiagnostico, Vehiculo unVehiculo, DiaLaboral unDiaLaboral, Taller unTaller) throws PreexistingEntityException, Exception {

        miEmpresa.altaTurno(nroTurno, fechaTurno, horaTurno, duracion, tiempoEstimado, unCliente, unEmpleado,
                unDiagnostico, unVehiculo, unDiaLaboral, unTaller);
    }

    public void AltaPedidoRepuesto(int nroPedido, String descripcion, boolean autorizado, boolean recambio, int cantidadPedida,
            Importancia unaImportancia, Empleado unEmpleado, Repuesto unRepuesto, Vehiculo unVehiculo) throws PreexistingEntityException, Exception {
        miEmpresa.altaPedidoRepuesto(nroPedido, descripcion, autorizado, recambio, cantidadPedida, unaImportancia, unEmpleado, unRepuesto, unVehiculo);
    }
    public List<Empleado> dameEmpleados(){
        return miEmpresa.dameEmpleados();
    }
    public void altaEstadoVehiculo(int codigoEstado,int kilometraje,String carroceria,String motor,String electricidad,String luminaria,String electronica,
            String neumaticos,String amortiguacion,String accesorios,Vehiculo unVehiculo,ReparacionEnEjecucion unaReparacionEnEjecucion) throws PreexistingEntityException, Exception{
        
        miEmpresa.altaEstadoVehiculo(codigoEstado,kilometraje, carroceria, motor, electricidad,luminaria, electronica,
            neumaticos, amortiguacion, accesorios, unVehiculo, unaReparacionEnEjecucion);
    }
    public void altaEstadoEjecucion(String nombre,int nroEstado) throws PreexistingEntityException, Exception{
        miEmpresa.altaEstadoEjecucion(nombre, nroEstado);
        
    }
}
